Generalized certificate use in policy-based secure messaging environments

ABSTRACT

Within a secure messaging environment, a determination is made that a request to send a message has been generated by a message sender. A message protection policy configured to process the message within the secure messaging environment is identified. The message protection policy specifies that, within the secure messaging environment, a secured digital certificate, other than a digital certificate of the message sender, is configured with an associated private key to digitally sign the message on behalf of the message sender. Based upon the message protection policy, a determination is made to digitally sign the message using the private key of the secured digital certificate. The message is signed on behalf of the message sender using the private key of the secured digital certificate.

BACKGROUND

The present invention relates to certificate use within messagingenvironments. More particularly, the present invention relates togeneralized certificate use in policy-based secure messagingenvironments.

Digital certificates, such as those, for example, based upon the X.509standard used in a public key infrastructure (PKI), may be used to bothsign and encrypt data using, for example, a public-key cryptographicstandard (PKCS), such as PKCS#7. Data that has been digitally signed inthis case uses the private key of the originator (or sender) of the dataand the data is verified by the recipient using the public key of thesender's certificate. Data that is encrypted utilizes the public key ofthe intended recipient to encrypt the data for that particularrecipient, and the recipient uses the private key of the recipient todecrypt the data.

SUMMARY

A method includes determining, within a secure messaging environment,that a request to send a message has been generated by a message sender;identifying a message protection policy configured to process themessage within the secure messaging environment, where the messageprotection policy specifies that, within the secure messagingenvironment, a secured digital certificate, other than a digitalcertificate of the message sender, is configured with an associatedprivate key to digitally sign the message on behalf of the messagesender; determining, based upon the message protection policy, todigitally sign the message using the private key of the secured digitalcertificate; and signing the message on behalf of the message senderusing the private key of the secured digital certificate.

A system includes a memory and a processor programmed to: determine,within a secure messaging environment, that a request to send a messagehas been generated by a message sender; identify, within the memory, amessage protection policy configured to process the message within thesecure messaging environment, where the message protection policyspecifies that, within the secure messaging environment, a secureddigital certificate, other than a digital certificate of the messagesender, is configured with an associated private key to digitally signthe message on behalf of the message sender; determine, based upon themessage protection policy, to digitally sign the message using theprivate key of the secured digital certificate; and sign the message onbehalf of the message sender using the private key of the secureddigital certificate.

A computer program product includes a computer readable storage mediumhaving computer readable program code embodied therewith, where thecomputer readable program code when executed on a computer causes thecomputer to determine, within a secure messaging environment, that arequest to send a message has been generated by a message sender;identify a message protection policy configured to process the messagewithin the secure messaging environment, where the message protectionpolicy specifies that, within the secure messaging environment, asecured digital certificate, other than a digital certificate of themessage sender, is configured with an associated private key todigitally sign the message on behalf of the message sender; determine,based upon the message protection policy, to digitally sign the messageusing the private key of the secured digital certificate; and sign themessage on behalf of the message sender using the private key of thesecured digital certificate.

BRIEF DESCRIPTION OF THE DRAWINGS

Figure (FIG. 1 is a block diagram of an example of an implementation ofa system for automated generalized certificate use in policy-basedsecure messaging environments according to an embodiment of the presentsubject matter;

Figure (FIG. 2 is a block diagram of an example of an implementation ofa core processing module capable of performing automated generalizedcertificate use in policy-based secure messaging environments accordingto an embodiment of the present subject matter;

Figure (FIG. 3 is a logical block diagram of an example of animplementation of a messaging interaction that illustrates generalizedcertificate use in policy-based secure messaging environments accordingto an embodiment of the present subject matter;

Figure (FIG. 4 is a flow chart of an example of an implementation of aprocess for generalized certificate use in policy-based secure messagingenvironments according to an embodiment of the present subject matter;

Figure (FIG. 5A is a flow chart of an example of an implementation ofinitial processing with a process for automated generalized certificateuse in policy-based secure messaging environments in association withmessage send and message receive requests according to an embodiment ofthe present subject matter; and

Figure (FIG. 5B is a flow chart of an example of an implementation ofadditional processing within a process for automated generalizedcertificate use in policy-based secure messaging environments inassociation with message send and message receive requests according toan embodiment of the present subject matter.

DETAILED DESCRIPTION

The examples set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

The subject matter described herein provides generalized certificate usein policy-based secure messaging environments. Within a secure messagingenvironment, a secure messaging component, as described below, operatesas a message data protection and security device on behalf of users. Inresponse to a request to send a message that has been generated by auser, the secure messaging component may identify a message protectionpolicy. The message protection policy is configured to process themessage within the secure messaging environment and specifies a secureddigital certificate (e.g., a digital certificate other than auser-assigned digital certificate of the user) that is configured withan associated private key to digitally sign the message on behalf of theuser and within the secure messaging environment. Based upon the messageprotection policy, the message is signed by the secure messagingcomponent on behalf of the user using the private key associated withthe secured digital certificate. Multiple users may be authorized tohave messages signed within the secure messaging environment by thesecure messaging component, and multiple recipients may be specified. Inany such cases, a single digital certificate may be used to providemessage data protection for one or more users, which may improveoperational efficiency. Additionally, the users do not have access tothe secured digital certificates, which may improve secure messagingenvironment security.

As such, the present subject matter operates as a message security proxymechanism within a secure messaging environment. A single certificate(or several certificates) may be shared for message protection purposesamong multiple messaging participants without exposing the private keyto the participants. The present technology may be implemented at anylevel within the secure messaging environment, such as for examplewithin a queue manager, a data protection module within the securemessaging environment that interfaces with a queue manager, or othercomponent, as appropriate for a given implementation. The examplesherein generally utilize queue managers for ease of descriptionpurposes, though it is understood that the examples apply to any devicethat may be utilized to implement the present technology. The devicethat implements the present technology within a secure messagingenvironment may be referred to generally below as the “secure messagingcomponent” for ease of reference to the set of devices that may be usedto implement the present technology.

Messages may be received or intercepted by the secure messagingcomponent and security may be applied to the messages, as configured,based upon a message protection policy (alternatively, “protectionpolicy” herein). The protection policy identifies one or more digitalcertificates to use for a particular messaging interaction. Thesedigital certificates may be certificates assigned to the respectivesecure messaging component or may be certificates that are managed bythe respective secure messaging component. The assigned or managedcertificate credentials may, as such, be used in place of the sending orreceiving user's credentials, when the secure messaging environment isdirected to do so by the message protection policy. As such, the presenttechnology reduces (e.g., minimizes) the number of individual digitalcertificates provisioned within a secure messaging environment andreduces (e.g., minimizes) the encryption/decryption overhead whenmultiple potential message recipients are involved.

When a message is placed on or destined for a queue, the respectiveprotection policy may be identified and evaluated to determine whetherthe protection policy indicates that the secure messaging component'sassigned or managed private key should be used to digitally sign themessage, or whether a user's private key should be used to digitallysign the message. Additionally, if stipulated by the protection policy,one or more recipient public keys may be used to encrypt the messagedata. These public keys may be the receiving secure messagingcomponent's assigned or managed public keys, or may be public keys ofindividual message recipients, as appropriate for a givenimplementation.

When a message is retrieved from a queue or during delivery within thesecure messaging environment, the respective protection policy (may bethe same or a different policy depending upon the particularimplementation) may be identified and evaluated to determine whether theprotection policy indicates that the secure messaging component'sassigned or managed private key should be used for decryption of themessage, or whether a user's private key should be used for decryptionof the message. Additionally, if stipulated by the message protectionpolicy, the sender's public key may be used to verify the digitalsignature of the message. This public key may be the sending securemessaging component's assigned or a managed public key, or may be thepublic key of individual message sender, as appropriate for a givenimplementation.

As such, multiple message participants are not required to have anassigned digital certificate or a private key at all, as each user mayuse the secure messaging component's assigned or managed certificate andprivate key, if authorized. Authorization to utilize the respectivesecure messaging component's assigned or managed certificates may beconfigured for individual users, groups, or otherwise as appropriate fora given implementation. Accordingly, the overhead of encrypting messagesfor multiple potential recipients may be reduced by allowing theencryption of a message for a subset of recipients or as few as a singlerecipient, and the messages may be decrypted for the entire set of themultiple recipients.

Authorizations/permissions may be configured, such that users may bespecified that are authorized to use the secure messaging component'sassigned or managed private keys. The respective message protectionpolicy may be extended to identify those message participant users thatare authorized to use the secure messaging component's assigned ormanaged private keys. Alternatively, the authorizations for specificusers to use the secure messaging component's assigned or managedprivate keys may reside in permissions or configurations external to themessage protection policy (e.g., by use of external security manager(ESM) resource permissions, or otherwise as appropriate for a givenimplementation). The policy extensions to support the present technologymay be implemented using any syntax that identifies authorized users touse the secure messaging component's assigned or managed private keys.Verification of the authorizations/permissions to use the respectivesecure messaging component's assigned or managed private keys forsigning and decryption may be implemented for individual users or groupsof users, as appropriate for a given implementation, and may beconsidered optional as appropriate for a given implementation. However,it is understood that, in practice, the security benefits ofverification of the authorizations/permissions may outweigh the moderatemessage processing overhead.

The following example message policy pseudo syntax represents onepossible implementation of syntax for implementation of a messageprotection policy to utilize a certificate assigned to or managed withinthe secure messaging environment itself.

create secpolicy

-   -   -p PolicyName    -   -s SigAlg    -   -e EncAlg    -   -r DN of Recipient    -   -u DN for get/put user1 (optional DN for get/put user2) (other        than user's own DN(s))

Within the example message policy pseudo syntax above, the first linespecifies a policy name. The second line and third line specify analgorithm to use for digital signatures and encryption, respectively.The fourth line specifies a distinguished name (DN) of the recipient.

The last line specifies a new policy option, the “-u” policy option. The“-u” policy option indicates that a particular DN is to be used formessaging under this message protection policy. One or moredistinguished names (DNs) are specified with the “-u” policy option. Assuch, multiple users may be identified using individual DNs or groupsmay be specified using group DNs. The DN(s) specify, as noted by commentwithin the above example message policy pseudo syntax, that DNs otherthan the user's/group's DN is/are to be used for message protection.

It should be noted that this example message policy pseudo syntax may beapplied to both sending and receiving environment policies. The examplemessage policy pseudo syntax indicates use of the public/private keypair associated with the named DN (-u DN) as if it were the user'spublic/private key pair. The secure messaging environment may use the DNto find the certificate (public key) and associated private key, and usethese keys for the relevant message protection. This last DN (-u DN)represents the DN of the secure messaging component's assigned ormanaged private key to be used for the respective messaginginteractions. It should be noted that other syntactic alternatives existfor expression of policy options, and all such alternatives areconsidered to be within the scope of the present subject matter.

As described above, the present technology provides an additionalsecurity check (verification) to confirm that the getting/putting userhas authority to exploit the “-u” option (e.g., only authorized userswill be permitted to get/put from a queue that has a policy that usesthe “-u” option, or at a more granular level, be permitted to use a DNspecified by the “-u” option).

Regarding the “managed” private keys, where a number of digitalcertificates are managed by the secure messaging component, adistinguished name, which represents a set of attribute values thatuniquely identifies an entity, may be associated with user identifierswithin the message protection policies. As such, a distinguished name(DN) of the secure messaging component's managed private keys may beused to identify the respective user(s) that are authorized to use therespective managed private keys. It is understood that a distinguishedname may include, for example, a common name (CN), organization (O), andcountry (C). As such, a DN may be configured as: CN=UserName,O=CompanyName, C=CountrySymbol.

Group certificates or group keys may be established, such that a “GroupA” may be configured in a message protection policy that indicates to“use group A” certificate for a particular set of users (e.g., using therespective distinguished name (DN)). For example, if one thousand (1000)users utilize a particular computer service, a special group certificatemay be created and used by the secure messaging environment for allusers in the group. As such, signing and verification of digitalsignatures, and encryption and decryption of message payloads, may befurther reduced using group certificates within the certificates managedby the secure messaging environment.

Using the present technology, message protection policies may beconfigured to allow several options for digital certificate use inassociation with different users. For example, the secure messagingcomponent (which may be a queue manager) may utilize a queue managercertificate, a certificate managed by a queue manager, a certificatemanaged by another component within the secure messaging environment, ora certificate of the user. The respective protection policies may beconfigured to utilize a variety of digital certificates as appropriateand configured for the respective users.

Additionally, the message protection policies may be configured assystem-wide message protection policies or may be dynamic messageprotection policies that apply to individual resources. For example, amessage protection policy may typically be applied to every messagequeue or to a specific message queue, respectively. As such, theprotection policies may be expressed with whatever granularityappropriate for a given implementation, by providing the respective DNof the entity.

Additionally, security within a secure messaging environment may beincreased by use of the present technology because access to the privatekeys may be limited to accesses only by/within the secure messagingenvironment itself. As such, the private key is not exposed to oraccessible by the respective messaging participants. This configurationand limited access to private keys may further enhance security withinthe secure messaging environment.

Based upon the present technology, the number of individual certificatesthat need to be assigned within a secure messaging environment may bereduced, which further reduces cost and administrative overhead.Additionally, encryption/decryption overhead may be reduced wheremultiple potential message recipients are involved (e.g., becauseencryption/decryption may be performed for one recipient rather thanpotentially thousands). Further, existing secure messaging environmentsmay implement the present technology without being adversely affected bythe introduction of the present technology because existing policies mayremain intact and unaffected, and application programs do not have to berebuilt or enhanced.

For purposes of the present description, a secure messaging environmentmay be considered a messaging environment where the security of messagedata is considered highly important (e.g., critical). A secure messagingenvironment may utilize data-protection policies that stipulate howmessage data is to be protected. As such, the secure messagingenvironment ensures the application of data-protection policies toprotect message data.

It should be noted that conception of the present subject matterresulted from recognition of certain limitations associated withcertificate use in secure messaging environments. For example, it wasobserved that when a message is placed on a queue by an application, adata-protection policy may exist that stipulates the message should bedigitally signed by the originator. It was observed that, similarly,when a message is retrieved from a queue by an application, adata-protection policy may exist that stipulates the message is expectedto be signed and its signature should be verified. In addition, it wasobserved that a data-protection policy may stipulate that message datashould be encrypted for one or more recipients. As such, when a messageis placed on a queue, the secure messaging environment encrypts themessage data for each potential recipient. Encryption in this case mayinvolve encryption of the message data using a symmetric key that isalso itself encrypted for each potential recipient. It was additionallyobserved that when the message is retrieved by one of those recipients,the secure messaging environment decrypts the message and delivers it tothe recipient. It was further observed that exchanging protectedmessages between specific identities typically involves the use ofdigital certificates, where each participant has a public/private keypair. As such, message senders use their private key to digitally signmessages that they send, and use the public key of the recipient(s) toencrypt the message data (symmetric key). Additionally, messagereceivers use their private key to decrypt messages they receive, anduse the public key of the sender to verify the sender's signature.

However, in view of these several observations, it was determined thatin secure messaging environments that involve potentially thousands ofparticipants, each participant must have a digital certificate andprivate key. It was further determined that such provisioning andmaintenance may be costly in terms of certificate cost (if purchasedfrom a vendor) and administrative overhead (managing thousands ofcertificates and key stores). It was further determined that a problemmay occur when a message has a large number of potential recipients(e.g., thousands of recipients) in that the resource cost to encrypt asingle message for multiple (even hundreds of) recipients may burdenresources to the point of impracticality, which would compromise thesecure messaging environment. In addition, it was determined that thereare higher resource costs and limitations on the number of certificatesa key ring or key store can host, and that such costs and limitationsmay make it impossible to perform secure messaging in certainenvironments and secure message distribution situations.

The present subject matter improves messaging in secure messagingenvironments by providing for generalized certificate use inpolicy-based secure messaging environments, as described above and inmore detail below. As such, improved operation and maintenance withinpolicy-based secure messaging environments may be obtained by use of thepresent technology.

The generalized certificate use in policy-based secure messagingenvironments described herein may be performed in real time to allowprompt policy-based certificate use in secure messaging environments.For purposes of the present description, real time shall include anytime frame of sufficiently short duration as to provide reasonableresponse time for information processing acceptable to a user of thesubject matter described. Additionally, the term “real time” shallinclude what is commonly termed “near real time”—generally meaning anytime frame of sufficiently short duration as to provide reasonableresponse time for on-demand information processing acceptable to a userof the subject matter described (e.g., within a portion of a second orwithin a few seconds). These terms, while difficult to precisely defineare well understood by those skilled in the art.

FIG. 1 is a block diagram of an example of an implementation of a system100 for automated generalized certificate use in policy-based securemessaging environments. A computing device_1 102, a computing device_2104, through a computing device_N 106 communicate via a network 108 witha server_1 110 through a server_M 112. It should be noted that theconfiguration of FIG. 1 is one possible example of an implementationand, as described above, many variations of system implementations arepossible. However, for purposes of clarity with respect to the presentexample, any device within the system 100 may operate locally orremotely with respect to any other device. Further, when runninglocally, there is no cross-network communications involved between therespective local devices.

As will be described in more detail below in association with FIG. 2through FIG. 5B, the computing device_1 102 through the computingdevice_N 106 and the server_1 110 through the server_M 112 may provideautomated generalized certificate use in policy-based secure messagingenvironments, as appropriate for a given implementation. As such,multiple devices may collaboratively provide automated generalizedcertificate use in policy-based secure messaging environments or asingle device may provide automated generalized certificate use inpolicy-based secure messaging environments. Additionally, the presenttechnology may be implemented at a user computing device or serverdevice level. A variety of possibilities exist for implementation of thepresent subject matter, and all such possibilities are considered withinthe scope of the present subject matter.

The automated generalized certificate use in policy-based securemessaging environments is facilitated by a secure messaging component,such as a queue manager, a data protection service/module, or othermodule that interfaces within a secure messaging environment between asending device/application and a receiving device/application. A queuemanager application may also process queue management functionality atthe direction of a data protection service/module. For purposes ofbrevity within the present description, and given the variety ofcomponents that may be configured to implement the present technology,the respective modules may be referred to herein as secure messagingcomponents, where reference to the secure messaging component isunderstood to reference any particular implementation as appropriate fora given implementation. It is further understood that one or more securemessaging components may be utilized to implement the present subjectmatter as appropriate for a given implementation.

The automated generalized certificate use in policy-based securemessaging environments facilitates secure proxied message signing withina secure messaging environment on behalf of one or more sending andreceiving applications. Regarding message initiation requests, a “put”request for a message initiated by a sending module may be interceptedor received by a secure messaging component and processed according tothe appropriate message protection policy. Conversely, with respect toreceipt of a message, a “get” request for a message from a receivingmodule may be intercepted or received by the secure messaging component.

It should be noted that the computing device_1 102 through the computingdevice_N 106, and/or the server_1 110 through the server_M 112, may be aportable computing device, either by a user's ability to move therespective device to different locations, or by the respective device'sassociation with a portable platform, such as a plane, train,automobile, or other moving vehicle. It should also be noted that thecomputing device_1 102 through the computing device_N 106 and theserver_1 110 through the server_M 112 may be any computing devicecapable of processing information as described above and in more detailbelow. For example, any of the respective computing devices may includedevices such as a mainframe computer, a distributed computing devicewithin a distributed network of computing devices, a personal computer(e.g., desktop, laptop, etc.) or a handheld device (e.g., cellulartelephone, personal digital assistant (PDA), email device, musicrecording or playback device, etc.), or any other device capable ofprocessing information as described in more detail below.

The network 108 may include any form of interconnection suitable for theintended purpose, including a private or public network such as anintranet or the Internet, respectively, direct inter-moduleinterconnection, dial-up, wireless, or any other interconnectionmechanism capable of interconnecting the respective devices.

The server_1 110 through the server_M 112 may include any device capableof providing data for consumption by a device, such as the computingdevice_1 102 through the computing device_N 106, via a network, such asthe network 108. For example, the server_1 110 through the server_M 112may each represent a web server, an application server, or other dataserver device, as appropriate for a given implementation.

FIG. 2 is a block diagram of an example of an implementation of a coreprocessing module 200 capable of performing automated generalizedcertificate use in policy-based secure messaging environments. The coreprocessing module 200 may be associated with any of the computingdevice_1 102 through the computing device_N 106 and/or any of theserver_1 110 through the server_M 112, as appropriate for a givenimplementation. As such, the core processing module 200 is describedgenerally herein, though it is understood that many variations onimplementation of the components within the core processing module 200are possible and all such variations are within the scope of the presentsubject matter. Further, the core processing module 200 may providedifferent and complementary processing for generalized certificate usein policy-based secure messaging environments for assigned and/ormanaged digital certificates in association with each implementationwithin a secure messaging environment, as described in more detailbelow. As such, for any of the examples below, it is understood that anyaspect of functionality described with respect to any one device that isdescribed in conjunction with another device (e.g., sends/sending, etc.)is to be understood to concurrently describe the functionality of theother respective device (e.g., receives/receiving, etc.). The coreprocessing module 200 is capable of performing automated generalizedcertificate use in policy-based secure messaging environments.

A central processing unit (CPU) 202 provides computer instructionexecution, computation, and other capabilities within the coreprocessing module 200. A display 204 provides visual information to auser of the core processing module 200 and an input device 206 providesinput capabilities for the user.

The display 204 may include any display device, such as a cathode raytube (CRT), liquid crystal display (LCD), light emitting diode (LED),electronic ink displays, projection, touchscreen, or other displayelement or panel. The input device 206 may include a computer keyboard,a keypad, a mouse, a pen, a joystick, or any other type of input deviceby which the user may interact with and respond to information on thedisplay 204.

It should be noted that the display 204 and the input device 206 areillustrated with a dashed-line representation within FIG. 2 to indicatethat they may be optional components for the core processing module 200for certain implementations. Accordingly, the core processing module 200may operate as a completely automated embedded device without directuser configurability or feedback. However, the core processing module200 may also provide user feedback and configurability via the display204 and the input device 206, respectively.

A communication module 208 provides interconnection capabilities thatallow the core processing module 200 to communicate with other moduleswithin the system 100. The communication module 208 may include anyelectrical, protocol, and protocol conversion capabilities useable toprovide interconnection capabilities, appropriate for a givenimplementation.

A memory 210 includes a queue storage area 212, a secure messagemanagement storage area 214, and an application area 216. The queuestorage area 212 stores queues that may include one or more queues forcommunicating messages between applications and/or devices, as describedabove and in more detail below. However, it should be noted that thememory 210 represents a general implementation of a storage device andthat any suitable device capable of storing the data described hereinmay be used, such as for example a hard disk or other device, asdescribed in more detail below. The secure message management storagearea 214 stores information, such as message protection policies forprotection of data within messages and other information as appropriatefor a given implementation. The application area 216 represents storageand execution space for one or more applications, such as one or morerequester applications and/or one or more responder applications.

It is understood that the memory 210 may include any combination ofvolatile and non-volatile memory suitable for the intended purpose,distributed or localized as appropriate, and may include other memorysegments not illustrated within the present example for ease ofillustration purposes. For example, the memory 210 may include a codestorage area, an operating system storage area, a code execution area,and a data area without departure from the scope of the present subjectmatter.

A queue manager module 218 provides queue management processing for thecore processing module 200, such as placement of messages onto andretrieval of messages from queues stored within the queue storage area212, as described above and in more detail below. A data protectionmodule 220 is also shown. The data protection module 220 implements theautomated generalized certificate use in policy-based secure messagingenvironments of the core processing module 200. The data protectionmodule 220 intercepts messaging, such as messages sent (e.g., “put”) toa queue or requested (e.g., “get”) from a queue, from one or moreapplications that may be executing locally within the application area216 or remotely at another device.

It is additionally noted that a queue manager and data protection module222 is illustrated via a dashed-line representation within FIG. 2. Thequeue manager and data protection module 222 is shown to include boththe queue manager module 218 and the data protection module 220, and isillustrated by the dashed-line representation to indicate that the queuemanager module 218 and the data protection module 220 may be implementedwithin a single module as appropriate for the given implementation.

The CPU 202, the display 204, the input device 206, the communicationmodule 208, the memory 210, the queue manager module 218, the dataprotection module 220, and the queue manager and data protection module222 are interconnected via an interconnection 224. The interconnection224 may include a system bus, a network, or any other interconnectioncapable of providing the respective components with suitableinterconnection for the respective purpose.

Though the different modules illustrated within FIG. 2 are illustratedas component-level modules for ease of illustration and descriptionpurposes, it should be noted that these modules may include anyhardware, programmed processor(s), and memory used to carry out thefunctions of the respective modules as described above and in moredetail below. For example, the modules may include additional controllercircuitry in the form of application specific integrated circuits(ASICs), processors, antennas, and/or discrete integrated circuits andcomponents for performing communication and electrical controlactivities associated with the respective modules. Additionally, themodules may include interrupt-level, stack-level, and application-levelmodules as appropriate. Furthermore, the modules may include any memorycomponents used for storage, execution, and data processing forperforming processing activities associated with the respective modules.The modules may also form a portion of other circuitry described or maybe combined without departure from the scope of the present subjectmatter.

Additionally, while the core processing module 200 is illustrated withand has certain components described, other modules and components maybe associated with the core processing module 200 without departure fromthe scope of the present subject matter. Additionally, it should benoted that, while the core processing module 200 is described as asingle device for ease of illustration purposes, the components withinthe core processing module 200 may be co-located or distributed andinterconnected via a network without departure from the scope of thepresent subject matter. For a distributed arrangement, the display 204and the input device 206 may be located at a point of sale device,kiosk, or other location, while the CPU 202 and memory 210 may belocated at a local or remote server. Many other possible arrangementsfor components of the core processing module 200 are possible and allare considered within the scope of the present subject matter.Accordingly, the core processing module 200 may take many forms and maybe associated with many platforms.

FIG. 3 is a logical block diagram of an example of an implementation amessaging interaction 300 that illustrates generalized certificate usein policy-based secure messaging environments. The logical block diagramof FIG. 3 represents a secure messaging environment for purposes of thepresent description. As a logical block diagram, details of the mappingof the respective components of FIG. 3 onto the example architecture ofthe core processing module 200 of FIG. 2 may be understood by review ofthe details of the core processing module 200 described above. Thesedetails are omitted from FIG. 3 to eliminate crowding within the drawingcontent of FIG. 3. Further, separate queue manager modules, such as thequeue manager module 218, are omitted also to avoid crowding within thedrawing content of FIG. 3. However, it is understood that a queuemanager module functions to process message placement to and retrievalfrom queues, and that queues may be stored, for example, within one ormore queue storage areas, such as the queue storage area 212 describedabove. Additionally, data protection modules, such as the dataprotection module 220, may be implemented as one or more data protectionmodules. Message protection policies may be stored, for example, withinone or more queue management storage areas, such as the queue managementstorage area 214. For any implementation including more than one of anysuch component, the multiple components may be implemented within one ormore devices, and as such, within one or more core processing modules200. In view of the significant number of variations in implementation,details of the mapping of the components of FIG. 3 to any specificarchitecture are omitted herein for brevity and may vary based upon thedescription herein as appropriate for any given implementation.

Referring to FIG. 3, a message sender (USER_1) 302 interacts with amessage recipient (USER_2) 304 in a messaging operation within a securemessaging environment implementation. A data protection module 306protects data and messages for the message sender (USER_1) 302 bysigning and encrypting messaging sent from the message sender (USER_1)302. It should be noted that, while the present example does not detailreception of messages by the message sender (USER_1) 302, processing asdescribed below for message recipient (USER_2) 304 may be implemented bythe data protection module 306 to decrypt and verify messaging receivedby the message sender (USER_1) 302.

A data protection module 308 protects data and messages for the messagerecipient (USER_2) 304 by decrypting and verifying messaging received bythe message recipient (USER_2) 304 and signing and encrypting messagingsent from the message recipient (USER_2) 304. It should be noted that,while the present example does not detail sending of messages by themessage recipient (USER_2) 304, processing as described above and inmore detail below for message sender (USER_1) 302 may be implemented bythe data protection module 308 to sign and encrypt messaging sent by themessage recipient (USER_2) 304.

The logical flow of the messaging interaction 300 begins with themessage sender (USER_1) 302 initiating a “put” for a message it desiresto send at logical flow point (1) within FIG. 3 (e.g., “(1) PUT(MESSAGE)”). The message may include a static queue name for a Queue310, the queue may be selected within the secure messaging environment,or the queue may be selected by the data protection module 306.

A Message Protection Policy 312 may be accessed by the data protectionmodule 306. The Message Protection Policy 312 may be used to identifyseveral aspects of message protection. For purposes of the presentexample, the Message Protection Policy 312 is shown to include at leastone secure messaging component encryption key identifier (SECUREMESSAGING COMPONENT ENCRYPTION KEY). The secure messaging componentencryption key identifier(s) represent digital certificates assigned tothe respective secure messaging component(s). The Message ProtectionPolicy 312 is also shown to include at least one secure messagingcomponent “managed” encryption key identifier (SECURE MESSAGINGCOMPONENT MANAGED ENCRYPTION KEY). The secure messaging component“managed” encryption key identifier represents digital certificatesother than a certificate assigned to the respective secure messagingcomponent(s) that are managed on behalf of another entity within thesecure messaging environment by the respective secure messagingcomponent. The secure messaging component encryption key identifier(s)and the secure messaging component “managed” encryption keyidentifier(s) may be represented, as described above, as a distinguishedname (DN) that references a digital certificate with which therespective keys are associated.

The Message Protection Policy 312 also includes an identification of oneor more users (AUTHORIZED USERS OF SECURED CERTIFICATES) that arespecified as authorized to utilize the proxy services of the securemessaging component for message protection using a digital certificateassigned to or managed by the respective secure messaging component. Asdescribed above, the authorized users may be specified with a “-u”policy option with one or more DNs specified for authorization.Additionally, group DNs may be specified with the “-u” policy option. Itshould be noted that other syntactic alternatives exist for expressionof policy options, and all such alternatives are considered to be withinthe scope of the present subject matter. For purposes of the presentexample, it is assumed that both the message sender (USER_1) 302 and themessage recipient (USER_2) 304 are authorized to have message securityprovided for them on proxy by a secure messaging component (e.g., dataprotection modules, queue managers, etc., as appropriate for a givenimplementation) within the secure messaging environment.

In response to the “put” request for the message at logical flow point(1) within FIG. 3 (e.g., “(1) PUT (MESSAGE)”) by the message sender(USER_1) 302, the data protection module 306 analyzes the message andthe Message Protection Policy 312 (e.g., at (2)) to determine whetherthe message sender (USER_1) 302 is authorized to utilize the proxymessage security services of the secure messaging environment (oralternatively/additionally to utilize the secure messaging environmentat all). In response to determining that the message sender (USER_1) 302is authorized to utilize the proxy message security services of thesecure messaging environment, a determination is made to assign themessage to the Message Queue 310. The data protection module 306 orqueue manager (not specifically shown, though understood to berepresented by the queue manger module 218 of FIG. 2) for the messagequeue 310 may operate as a secure messaging component, as describedherein, to perform message protection services on proxy and on behalf ofthe message sender (USER_1) 302. Other modules may also operate assecure messaging components, as appropriate for a given implementation.

The respective secure messaging component may select a digitalcertificate assigned to the secure messaging component (using, forexample, a DN of the secure messaging component) or may select a digitalcertificate managed by the secure messaging component (using, again forexample, a DN of a managed certificate). The secure messaging componentmay sign the message using the selected digital certificate's privatekey and may encrypt the message using a public key associated with aselected digital certificate. Given that these operations are performedwithin the secure messaging environment, the present technology allowsuse of the same selected digital certificate and key pair for therespective operations, or a different selected digital certificate andkey pair for the respective operations, as appropriate for a givenimplementation.

It should be noted that encryption keys may be issued in pairs (privateand public key pairs), and that where a public key is used to encrypt amessage, a corresponding private key may be used to decrypt the message.With respect to digital signatures, the selected digital certificate'sprivate key may be used to digitally sign messages and the selecteddigital certificate's pubic key may be used to verify digital signaturesapplied to messages.

It should be noted that the data protection module 306 (and 308) sitsbetween the respective sender or receiver applications, respectively,and the queue manager so that the data protection module 306 (and 308)may intercept these requests. This allows the data protection module 306(and 308) to sign and encrypt, and to decrypt and verify signatures “onthe fly” during run time. Alternatively, the queue manager (notspecifically shown) may perform these tasks on behalf of the respectiveapplications. As such, and as described above, either component mayoperate to perform the generalized certificate use in policy-basedsecure messaging environments described herein.

Additionally, the secure messaging component, whether implemented as adata protection module, a queue manager, or otherwise, may encrypt themessage payload for each authorized recipient using the publicencryption key of the selected digital certificate. As such, and asdescribed above, the message participants themselves are not required tohave encryption keys issued/assigned to them and overhead may be reducedwhere there are multiple message recipients by encrypting the messageonce for all recipients as a group. The data protection module 306submits the message to the queue manager (not shown within FIG. 3) forplacement on the Message Queue 310. The queue manager places themodified message on the Message Queue 310 at logical flow point (3)within FIG. 3 (e.g., (3) MESSAGE).

As such, the message is now signed and encrypted using a digitalcertificate other than a user digital certificate. These certificatesare not exposed to the respective messaging participants, and securitywithin the secure messaging environment may be improved.

As described above, it is understood that many forms of encryption areavailable and that any encryption may be used as appropriate for a givenimplementation. For example, Public Key Infrastructure (PKI) techniques,which involve digital certificates and public and private certificatekeys, may be used. Further, an encryption algorithm may be specifiedwithin a message, or the algorithm may form part of the queue policy, torequest encryption of the message according to a specified encryptionalgorithm. Encryption algorithms such as triple data encryptionalgorithm (Triple DES), variations of the advanced encryption standard(AES) such as AES 128 (one hundred and twenty-eight bit), AES 192 (onehundred and ninety-two bit), AES 256 (two hundred and fifty-six bit),Rivest cipher (RC2), RC4, RC5, RC6, and other forms of encryption may beused without departure from the scope of the present subject matter.

It should be noted that, for purposes of the present example, it isassumed that the single Message Protection Policy 312 is utilized toidentify secured digital certificates for both signing and encryptingmessages, and for decrypting and signature verification. However, it isunderstood that this information may be distributed across multiplemessage protection policies.

In response to the “get” request for the request message at logical flowpoint (4) within FIG. 3 (e.g., “(4) GET (MESSAGE)”) by the messagerecipient (USER_2) 304, the data protection module 308 analyzes themessage and the Message Protection Policy 312 to determine anappropriate digital certificate to utilize for decryption of the messageand verification of the attached digital signature. The data protectionmodule 308 identifies the digital certificate specified and used by thesecure messaging component that signed and encrypted the message, suchas within the message or within the Message Protection Policy 312.

Similar to the sending-side processing, the data protection module 308identifies a decryption (e.g., private) key for the secure messagingcomponent that securely processed the message on behalf of the messagerecipient (USER_2) 304 within the Message Protection Policy 312 (e.g.,at (5)) and decrypts the request message payload encrypted for thisparticular authorized recipient using the identified private key of thesecure messaging component. As described above, where multiplerecipients are specified in the message, only one decryption andsignature validation are performed. Additionally, the respectivemessaging participants do not have access to the digital certificateswithin the secure messaging environment.

It should be noted that the decryption key may be obtained from thedigital certificate assigned to or managed by the respective securemessaging component that processed the message. Alternatively, theencryption information may be stored within the respective messageprotection policies as appropriate for a given implementation. The dataprotection module 308 provides the decrypted message to the messagerecipient (USER_2) 304 for processing.

As such, the data protection module 306, the data protection module 308,and a queue manager 218 may each provide all or part of thefunctionality for generalized certificate use in policy-based securemessaging environments in response to message requests. As describedabove, one or more recipients may be specified. Where multiplerecipients are specified in the message, only one decryption andsignature validation are performed, which may improve operationalefficiency within the secure messaging environment, particularly forsituations where thousands or more recipients are specified.Additionally, because the respective messaging participants do not haveaccess to the digital certificates, security may be improved within thesecure messaging environment.

FIG. 4 through FIG. 5B described below represent example processes thatmay be executed by devices, such as the core processing module 200, toperform the generalized certificate use in policy-based secure messagingenvironments associated with the present subject matter. Many othervariations on the example processes are possible and all are consideredwithin the scope of the present subject matter. The example processesmay be performed by modules, such as the queue manager and dataprotection module 222 and/or executed by the CPU 202, associated withsuch devices. It should be noted that time out procedures and othererror control procedures are not illustrated within the exampleprocesses described below for ease of illustration purposes. However, itis understood that all such procedures are considered to be within thescope of the present subject matter. Further, the described processesmay be combined, sequences of the processing described may be changed,and additional processing may be added or removed without departure fromthe scope of the present subject matter.

FIG. 4 is a flow chart of an example of an implementation of a process400 for generalized certificate use in policy-based secure messagingenvironments. At block 402, the process 400 determines, within a securemessaging environment, that a request to send a message has beengenerated by a user. At block 404, the process 400 identifies a messageprotection policy configured to process the message within the securemessaging environment, where the message protection policy specifiesthat, within the secure messaging environment, a secured digitalcertificate, other than a user-assigned digital certificate of the user,is configured with an associated private key to digitally sign themessage on behalf of the user. At block 406, the process 400 determines,based upon the message protection policy, to digitally sign the messageusing the private key of the secured digital certificate. At block 408,the process 400 signs the message on behalf of the user using theprivate key of the secured digital certificate.

FIGS. 5A-5B illustrate a flow chart of an example of an implementationof a process 500 for automated generalized certificate use inpolicy-based secure messaging environments in association with messagesend and message receive requests. FIG. 5A illustrates initialprocessing within the process 500. As described in more detail below,the process 500 protects secured digital certificates against access bya user and provides proxy messaging signing and encryption serviceswithin a secure messaging environment for users.

At decision point 502, the process 500 makes a determination as towhether a request to send (e.g., put) a message has been generated by auser and detected by a secure messaging component within a securemessaging environment. As described above, the secure messagingcomponent may include, for example, a queue manager, a data protectionmodule within the secure messaging environment that interfaces with aqueue manager, or other component, as appropriate for a givenimplementation. To continue with the description of higher-levelprocessing, in response to determining that a request to send (e.g.,put) a message has not been generated by a user and has not beendetected by a secure messaging component within the secure messagingenvironment, the process 500 makes a determination at decision point 504as to whether a request to receive (e.g., get) a message has beengenerated by a user and detected by a secure messaging component withinthe secure messaging environment. In response to determining that arequest to receive (e.g., get) a message has not been generated by auser and has not been detected by a secure messaging component withinthe secure messaging environment, the process 500 returns to decisionpoint 502 and iterates as described above.

Returning to the description of decision point 502, in response todetermining that a request to send (e.g., put) a message has beengenerated by a user and detected by a secure messaging component withina secure messaging environment, the process 500 identifies a queuespecified for the generated message at block 506. The specified queuemay be identified, for example, as a default message queue for theparticular sender and receiver, may be identified within a messageprotection policy, may be identified as a parameter to the send request,or may be identified within the message itself (by the userapplication), as appropriate for a given implementation. For purposes ofthe present example, it is assumed that the identified queue has beenspecified other than within the message protection policy, for example,as a parameter to the send request.

As such, at block 508, the process 500 identifies and retrieves amessage protection policy. The identified message protection policy maybe configured to process the message within the secure messagingenvironment. Further, the message protection policy may specify that,within the secured messaging environment, a secured digital certificateother than a user-assigned digital certificate of the user is configuredwith an associated private key to digitally sign the message on behalfof the user. At block 510, the process 500 identifies the sender of themessage.

At decision point 512, the process 500 makes a determination as towhether to utilize a secured digital certificate protected within thesecure messaging environment to sign or encrypt the message. Asdescribed above, the secured digital certificate may include a digitalcertificate that is either assigned to or managed by a secure messagingcomponent within the secure messaging environment. Though the presentexample illustrates encryption of the message, it is understood thatencryption may be optional for the message, as appropriate for the givenimplementation.

It should further be noted that the present technology allowsindependent and granular selection and use of secure certificates forsignature and encryption purposes. For example, on the “PUT” side, thepresent technology allows identification of a securedcertificate/private key to sign messages, “or” allows identification ofa secured certificate/public key to encrypt messages (i.e. encryptingfor the “secured” identity), though it is understood that bothoperations may be performed using one or more secure certificates asdetermined based upon the implemented message protection policy.Similarly, on the “GET” side, the present technology allowsidentification of a secured certificate/private key to use in place ofan individual user's key for the purpose of decryption, “or” allowsidentification of a “secured” certificate/public key to use to verify asender's signature, though again it is understood that both operationsmay be performed using one or more secure certificates, again asdetermined based upon the implemented message protection policy.

As described above, individual sender and receiver certificates may beoptionally used, and the present example illustrates this form ofprocessing to differentiate that processing from the generalizedcertificate use in policy-based secure messaging environments describedherein. As such, in response to determining not to utilize a secureddigital certificate protected within the secure messaging environment tosign or encrypt the message at decision point 512, the process 500retrieves the sender's digital certificate, and signs the message with aprivate key of the sender's digital certificate and encrypts the message(again optionally) for relevant recipients using the public key(s) ofthe respective recipients at block 514. At block 516, the process 500forwards the message to the identified message queue, and returns todecision point 502 and iterates as described above.

Returning to the description of decision point 512, it should be notedthat authorization of individual message senders or groups of messagesenders (and individual message receivers or groups of messagereceivers) may be performed. Though authorization may be configured bydefault, for example, the present example illustrates authorizationprocessing as a run-time step to further protect the secure messagingenvironment. Further, indications of senders and recipients that areauthorized may be configured within message protection policies (e.g.,using DNs of the individual users or groups).

As such, at decision point 512, in response to determining to utilize asecured digital certificate protected within the secure messagingenvironment to sign or encrypt the message, the process 500 makes adetermination at decision point 518 as to whether to perform theauthorization processing of the identified sender of the message. Inresponse to determining to perform the authorization processing of theidentified sender of the message at decision point 518, the process 500makes a determination at decision point 520 as to whether the identifiedsender is authorized to request that the secure messaging environmentutilize a secured digital certificate protected within the securemessaging environment to sign or encrypt the message. In response todetermining at decision point 520 that the identified sender is notauthorized to request that the secure messaging environment utilize asecured digital certificate protected within the secure messagingenvironment to sign or encrypt the message, the process 500 returns todecision point 502 and iterates as described above. As such,unauthorized users may be prevented from sending messages within thesecure messaging environment without an explicit verification ofauthorization to send messages using protected digital certificates. Itshould be noted that an error or log of the unauthorized access attemptis considered to be part of the process 500, though it is not explicitlyshown to reduce crowding within the drawing figure.

In response to determining that the identified sender is authorized torequest that the secure messaging environment utilize a secured digitalcertificate protected within the secure messaging environment to sign orencrypt the message at decision point 520, or in response to determiningnot to perform the authorization processing of the identified sender ofthe message at decision point 518 (e.g., a default authorization hasbeen configured, etc.), the process 500 makes a determination atdecision point 522 as to whether multiple (e.g., a group of) secureddigital certificates are configured to digitally sign (or optionallyencrypt) the message on behalf of the sending user within the securemessaging environment. It is understood that the secured digitalcertificates described herein are digital certificates assigned to andmanaged within the secure messaging environment, and are digitalcertificates other than a user-assigned digital certificate of thesending user (e.g., other than message sender and/or message receivercertificates).

As described above, the determination as to whether multiple secureddigital certificates are configured to digitally sign (or optionallyencrypt) the message on behalf of the sending user within the securemessaging environment may be made utilizing the identified messageprotection policy. For example, the secure messaging component may havea digital certificate assigned to it. The secure messaging component mayalso manage other digital certificates within the secure messagingenvironment. As such, multiple digital certificates may be configuredfor use by the secure messaging component for signing and optionallyencrypting messages within the secure messaging environment.

In response to determining at decision point 522 that multiple secureddigital certificates are not configured to digitally sign and optionallyencrypt the message on behalf of the sending user within the securemessaging environment, and that a single digital certificate isindicated to be used within the message protection policy for digitallysigning and optionally encrypting the message, the process 500 retrievesthe policy-specified secured digital certificate of the secure messagingcomponent at block 524. Alternatively, in response to determining atdecision point 522 that multiple secured digital certificates areconfigured to digitally sign and optionally encrypt the message onbehalf of the user within the secure messaging environment, the process500 selects one of the multiple policy-specified secured digitalcertificates of one of the secure messaging components (e.g., anassigned or managed digital certificate) for the purpose of signing, andoptionally one or more secured digital certificates for the purpose ofencrypting, at block 526.

In response to either retrieving the policy-specified secured digitalcertificate of the secure messaging component at block 524, or inresponse to selecting one of the multiple policy-specified secureddigital certificates of one of the secure messaging components at block526, the process 500 digitally signs, at block 528, the message withinthe secure messaging environment with the private key of the retrievedpolicy-specified secured digital certificate of the secure messagingcomponent or the selected one of the multiple policy-specified secureddigital certificates of one of the secure messaging components. Itshould be noted that, as described above, the message protection policymay further specify that the secured digital certificate is configuredto digitally sign messages on behalf of a group of users. As such,groups of users may be authorized to request that the secure messagingcomponent sign or encrypt messages using secured digital certificateswithin the secure messaging environment. Accordingly, the processing atblock 528 may be utilized to sign messages that originate from anymembers of the associated group of users using the private key of thesecured digital certificate.

At block 530, the process 500 encrypts the payload of thedigitally-signed message (again, may be optional for a givenimplementation or message) with the public key of the retrieved secureddigital certificate or certificates. It should additionally be notedthat, as also described above, the processing at block 530 may includedetermining whether the message protection policy specifies a singlerecipient or a group of recipients. As such, the processing at block 530may include encrypting the message for a single recipient using thepublic key of the secured digital certificate in response to determiningthat the message protection policy specifies the single recipient.Alternatively, the processing at block 530 may include encrypting themessage for the group of recipients using the public keys of themultiple policy-specified secured digital certificates in response todetermining that the message protection policy specifies the group ofrecipients.

As an additional alternative, because the encryption and decryption areperformed within the secure messaging environment, a single encryptionmay be performed with the public key assigned to the secure messagingcomponent, and decryption may be performed for multiple users of thegroup in response to “get” requests if the requesting user is a memberof the group and authorized within the secure messaging environment toissue such requests. As such, digital certificate count may be reducedfor groups by multiplexing certificate use across groups of authorizedusers.

In response to encrypting the message as described above at block 530,the process 500 forwards the message to the identified message queue atblock 532. The process returns to decision point 502 and iterates asdescribed above.

Returning to the description of decision point 504, in response todetermining that a request to receive (e.g., get) a message has beengenerated by a user and detected by a secure messaging component withinthe secure messaging environment, the process 500 transitions to theprocessing shown and described in association with FIG. 5B. It isunderstood that the get request may specify a message queue, and mayspecify the message queue identified above to which the signed andencrypted message was put.

FIG. 5B illustrates additional processing associated with the process500 for generalized certificate use in policy-based secure messagingenvironments in association with message send and message receiverequests. At block 534, the process 500 retrieves the signed andencrypted message from the message queue. At block 536, the process 500identifies and retrieves a message protection policy associated with themessage queue.

At decision point 538, the process 500 makes a determination as towhether to utilize a secured digital certificate protected within thesecure messaging environment to decrypt or validate the digitalsignature applied to the message. As described above, the secureddigital certificate may include a digital certificate that is eitherassigned to or managed by a secure messaging component within the securemessaging environment. Though the present example illustrates decryptionof the message, it is understood that decryption may be optional for themessage, as appropriate for the given implementation, and may be basedupon whether it was optionally encrypted on the sending side of themessaging interaction, as is the case with the present example.

As also described above, individual sender and receiver certificates maybe optionally used, and the present example illustrates this form ofprocessing to differentiate that processing from the generalizedcertificate use in policy-based secure messaging environments describedherein. As such, in response to determining not to utilize a secureddigital certificate protected within the secure messaging environment todecrypt and validate the digital signature applied to the message atdecision point 538, the process 500 retrieves the recipient's privatekey, and decrypts (again optional) the message and validates the digitalsignature applied to the message with the public key of the sender'sdigital certificate at block 540. At block 542, the process 500 forwardsthe message to the recipient, and returns to decision point 502 withinFIG. 5A and iterates as described above.

Returning to the description of decision point 538, it should be notedthat authorization of individual message senders or groups of messagesenders (and individual message receivers or groups of messagereceivers) may be performed. Though authorization may be configured bydefault, for example, the present example illustrates authorizationprocessing as a run-time step to further protect the secure messagingenvironment. Further, indications of senders and recipients that areauthorized may be configured within message protection policies (e.g.,using DNs of the individual users or groups).

As such, at decision point 538, in response to determining to utilize asecured digital certificate protected within the secure messagingenvironment to decrypt or validate the digital signature applied to themessage, the process 500 makes a determination at decision point 544 asto whether to perform the authorization processing of the recipient ofthe message that issued the “get” request. In response to determining toperform the authorization processing of the recipient of the messagethat issued the “get” request at decision point 544, the process 500makes a determination at decision point 546 as to whether the recipientis authorized to request that the secure messaging environment utilize asecured digital certificate protected within the secure messagingenvironment to decrypt or validate the digital signature applied to themessage. In response to determining that the identified recipient is notauthorized to request that the secure messaging environment utilize asecured digital certificate protected within the secure messagingenvironment to decrypt or validate the digital signature applied to themessage, the process 500 returns to decision point 502 within FIG. 5Aand iterates as described above. As such, unauthorized users may beprevented from receiving messages from the secure messaging environmentwithout an explicit verification of authorization to receive messagesusing protected digital certificates. It should be noted that an erroror log of the unauthorized access attempt is considered to be part ofthe process 500, though it is not explicitly shown to reduce crowdingwithin the drawing figure.

In response to determining at decision point 546 that the identifiedrecipient is authorized to request that the secure messaging environmentutilize a secured digital certificate protected within the securemessaging environment to decrypt or validate the digital signatureapplied to the message, or in response to determining at decision point544 not to perform the authorization processing of the recipient of themessage (e.g., a default authorization has been configured, etc.), theprocess 500 makes a determination at decision point 548 as to whethermultiple (e.g., a group of) secured digital certificates are configuredto optionally decrypt and verify digital signatures applied to messageson behalf of the requesting recipient user within the secure messagingenvironment. It is understood that the secured digital certificatesdescribed herein are digital certificates assigned to and managed withinthe secure messaging environment, and are digital certificates otherthan a user-assigned digital certificate of the requesting recipientuser (e.g., other than message sender and/or message receivercertificates).

As described above, the determination as to whether multiple secureddigital certificates are configured to optionally decrypt and verifydigital signatures applied to messages on behalf of the requestingrecipient user within the secure messaging environment may be madeutilizing the identified message protection policy. For example, thesecure messaging component may have a digital certificate assigned toit. The secure messaging component may also manage other digitalcertificates within the secure messaging environment. As such, multipledigital certificates may be configured for use by the secure messagingcomponent for verifying digital signatures and optionally decryptingmessages within the secure messaging environment.

In response to determining at decision point 548 that multiple secureddigital certificates are not configured to optionally decrypt and verifydigital signatures applied to messages on behalf of the requestingrecipient user within the secure messaging environment, and that asingle digital certificate is indicated to be used within the messageprotection policy for optionally decrypting and verifying a digitalsignature of the message, the process 500 retrieves the policy-specifiedsecured digital certificate of the secure messaging component at block550. Alternatively, in response to determining at decision point 548that multiple secured digital certificates are configured to optionallydecrypt and verify digital signatures applied to messages on behalf ofthe requesting recipient user within the secure messaging environment,the process 500 selects one of the multiple policy-specified secureddigital certificates of one of the secure messaging components (e.g., anassigned or managed digital certificate) at block 552.

In response to either retrieving the policy-specified secured digitalcertificate of the secure messaging component at block 550, or inresponse to selecting one of the multiple policy-specified secureddigital certificates of one of the secure messaging components at block552, the process 500 decrypts, at block 554, the payload of thedigitally-signed message (again, may be optional for a givenimplementation or message) with the private key of the retrievedpolicy-specified secured digital certificate of the secure messagingcomponent or the selected one of the multiple policy-specified secureddigital certificates of one of the secure messaging components. Itshould additionally be noted that, as also described above, theprocessing at block 554 may include determining whether the messageprotection policy specifies a single recipient or a group of recipients.As such, the processing at block 554 may include decrypting the messagefor a single recipient using the private key of the secured digitalcertificate in response to determining that the message protectionpolicy specifies the single recipient. Alternatively, the processing atblock 554 may include decrypting the message for the group of recipientsusing the private key of the secured digital certificate in response todetermining that the message protection policy specifies the group ofrecipients.

At block 556, the process 500 verifies the digital signature of themessage within the secure messaging environment with the public key ofthe sender's secured digital certificate. It should be noted that, asdescribed above, the message protection policy may further specify thatthe secured digital certificate is configured to validate digitalsignatures of messages on behalf of a group of users. As such, groups ofusers may be authorized to request that the secure messaging componentdecrypt and validate/verify digital signatures of messages using secureddigital certificates within the secure messaging environment.Accordingly, the processing at block 556 may be utilized to verifydigital signatures of messages that originate from any members of theassociated group of users using the public key of the secured digitalcertificate.

As also described above, as an additional alternative, because theencryption and decryption are performed within the secure messagingenvironment, a single decryption may be performed for multiple users ofthe group in response to “get” requests if the requesting user is amember of the group and authorized within the secure messagingenvironment to issue such requests. As such, digital certificate countmay be reduced for groups by multiplexing certificate use across groupsof authorized users.

In response to verifying the signature of the message as described aboveat block 556, the process 500 returns to block 542 and forwards themessage to the recipient. The process 500 returns to decision point 502within FIG. 5A and iterates as described above.

As such, the process 500 protects, within the secure messagingenvironment, the secured digital certificate against access by users.Further, the users do not have to have their own digital certificates orencryption/decryption key pairs to obtain the benefits of secure messagecommunications provided by the process 500. Digital certificate countwithin a system, such as the system 100, may be reduced. Additionally,by use of secured digital certificates that are not accessible to users,and by allowing users to share secured digital certificates within thesecure messaging environment, digital signature processing andencryption overhead may be reduced.

As described above in association with FIG. 1 through FIG. 5B, theexample systems and processes provide generalized certificate use inpolicy-based secure messaging environments. Many other variations andadditional activities associated with generalized certificate use inpolicy-based secure messaging environments are possible and all areconsidered within the scope of the present subject matter.

Those skilled in the art will recognize, upon consideration of the aboveteachings, that certain of the above examples are based upon use of aprogrammed processor, such as the CPU 202. However, the invention is notlimited to such example embodiments, since other embodiments could beimplemented using hardware component equivalents such as special purposehardware and/or dedicated processors. Similarly, general purposecomputers, microprocessor based computers, micro-controllers, opticalcomputers, analog computers, dedicated processors, application specificcircuits and/or dedicated hard wired logic may be used to constructalternative equivalent embodiments.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), a portablecompact disc read-only memory (CD-ROM), an optical storage device, amagnetic storage device, or any suitable combination of the foregoing.In the context of this document, a computer readable storage medium maybe any tangible medium that can contain, or store a program for use byor in connection with an instruction execution system, apparatus, ordevice.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as JAVA™, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention have been described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable storage medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablestorage medium produce an article of manufacture including instructionswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modems and Ethernet cards are just a few of thecurrently available types of network adapters.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a,” “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A system, comprising: a memory; and a processorprogrammed to execute a secure messaging component to: determine, at thesecure messaging component as part of providing a generalizedcertificate use service within a secure messaging environment, that arequest to send a message has been generated by a message sender, wherethe generalized certificate use service provides real-time selective useof different secured digital certificates for different messages sent bythe message sender, and the different secured digital certificates aredigital certificates other than a digital certificate of the messagesender; identify, within the memory, a message protection policyconfigured to process the message under the generalized certificate useservice within the secure messaging environment, where the messageprotection policy specifies the different secured digital certificatesthat are each configured with an associated private key to digitallysign the message on behalf of the message sender; determine, based uponthe message protection policy, to digitally sign the message using theprivate key of a secured digital certificate selected from the differentsecured digital certificates specified in the message protection policy;and sign the message on behalf of the message sender using the privatekey of the selected secured digital certificate.
 2. The system of claim1, where the processor is further programmed to execute the securemessaging component to protect, by the secure messaging environment, thedifferent secured digital certificates against access by the messagesender.
 3. The system of claim 1, where one of the different secureddigital certificates comprises: a digital certificate owned by thesecure messaging component within the secure messaging environment. 4.The system of claim 1, where the secure messaging component comprisesone of (i) a queue manager that manages a protected message queue withinthe secure messaging environment and (ii) a data protection module thatcontrols access to the protected message queue within the securemessaging environment and that interfaces with the queue manager.
 5. Thesystem of claim 1, where the selected secured digital certificatecomprises a digital certificate that is (i) owned by an entity otherthan the message sender and (ii) managed by the secure messagingcomponent within the secure messaging environment.
 6. The system ofclaim 1, where the generalized certificate use service provided by thesecure messaging component further allows selection of different ones ofthe different secured digital certificates specified in the messageprotection policy for signing and encrypting the message.
 7. The systemof claim 1, where the processor is further programmed, as part of thegeneralized certificate use service, to execute the secure messagingcomponent to: select a second secured digital certificate from thedifferent secured digital certificates for encryption of the message;and encrypt the message using a public key associated with the selectedsecond secured digital certificate.
 8. The system of claim 1, where theprocessor is further programmed, according to the message protectionpolicy, to execute the secure messaging component to: select the secureddigital certificate from the different secured digital certificates todigitally sign the message; and select an additional one or more of thedifferent secured digital certificates for encrypting the message. 9.The system of claim 1, where the processor is further programmed toexecute the secure messaging component to identify the selected secureddigital certificate used by the secure messaging component to sign themessage.
 10. A computer program product, comprising: a computer readablestorage medium having computer readable program code embodied therewith,where the computer readable storage medium is not a transitory signalper se and where the computer readable program code when executed on acomputer causes the computer to: determine, at a secure messagingcomponent that provides a generalized certificate use service within asecure messaging environment, that a request to send a message has beengenerated by a message sender, where the generalized certificate useservice provides real-time selective use of different secured digitalcertificates for different messages sent by the message sender, and thedifferent secured digital certificates are digital certificates otherthan a digital certificate of the message sender; identify a messageprotection policy configured to process the message under thegeneralized certificate use service within the secure messagingenvironment, where the message protection policy specifies the differentsecured digital certificates that are each configured with an associatedprivate key to digitally sign the message on behalf of the messagesender; determine, based upon the message protection policy, todigitally sign the message using the private key of a secured digitalcertificate selected from the different secured digital certificatesspecified in the message protection policy; and sign the message onbehalf of the message sender using the private key of the selectedsecured digital certificate.
 11. The computer program product of claim10, where the computer readable program code when executed on thecomputer further causes the computer to protect, by the secure messagingenvironment, the different secured digital certificates against accessby the message sender.
 12. The computer program product of claim 10,where one of the different secured digital certificates comprises: adigital certificate owned by the secure messaging component within thesecure messaging environment.
 13. The computer program product of claim10, where the secure messaging component comprises one of (i) a queuemanager that manages a protected message queue within the securemessaging environment and (ii) a data protection module that controlsaccess to the protected message queue within the secure messagingenvironment and that interfaces with the queue manager.
 14. The computerprogram product of claim 10, where the selected secured digitalcertificate comprises a digital certificate that is (i) owned by anentity other than the message sender and (ii) managed by the securemessaging component within the secure messaging environment.
 15. Acomputer program product, comprising: a machine readable data storagemedium, where the machine readable data storage medium is not atransitory signal per se; and computer instructions stored in themachine readable data storage medium; where the computer instructionswhen executed by a processor(s) set cause the processor(s) set toperform operations comprising: creating a message protection policy forapplication in a secure messaging environment, with the messageprotection policy specifying that any delivery of a message according tothe message protection policy requires a digital signature made using aprivate key that is managed by a queue manager that manages a securedmessage queue within the secure messaging environment; receiving, by thesecure messaging environment, a message; determining, by the securemessaging environment, that the message protection policy is applicableto the message; responsive to the determination that the messageprotection policy is applicable to the message, creating, by the securemessaging environment, the digital signature using the private keymanaged by the queue manager; and associating, by the secure messagingenvironment, the message and the digital signature such that the messagewill be communicated with the digital signature in the secure messagingenvironment.
 16. The computer program product of claim 15, where thecomputer instructions when executed by the processor(s) set furthercause the processor(s) set to perform an operation comprising: obtainingthe private key from a digital certificate.
 17. The computer programproduct of claim 15, where the private key is owned by the queuemanager.
 18. The computer program product of claim 15, where thecomputer instructions when executed by the processor(s) set furthercause the processor(s) set to perform an operation, according to themessage protection policy, comprising: selecting the private key from afirst digital certificate to digitally sign the message; and selectingan additional one or more digital certificates from which to obtainpublic keys for encrypting the message.
 19. The computer program productof claim 15, where the computer instructions when executed by theprocessor(s) set further cause the processor(s) set to perform anoperation comprising identifying a digital certificate associated withthe private key used by the secure messaging environment to sign themessage within the message.
 20. The computer program product of claim15, where the computer program product is in the form of a computersystem, with the computer program product further comprising: theprocessor(s) set structured, programmed, and/or connected to execute thecomputer instructions stored in the machine readable data storagemedium.